namespace SimpleWebServices.Web.UI.Html
{
    using SimpleWebServices.Models;
    using SimpleWebServices.Web.UI.Html.Elements;
    using SimpleWebServices.Web.UI.Html.Validation;

    public interface IContainForm : IResource
    {
        Form Form { get; }

        ValidatorSettingsCollection ValidatorSettings { get; }

        void Complete(FormSession session);

        string Render(int tabIndex);

        T Template<T>()
            where T : IContainForm;

        T Populated<T>()
            where T : IContainForm;
    }
}